iT邦幫忙

2025 iThome 鐵人賽

DAY 4
1

如果table之間有關聯,在query的時候想要把多個table的資料一起撈出來,可以使用 JOIN 關聯資料,table之間的關係就會像下面的圖一樣。
join table
JOIN 的語法範例和執行結果如下:

SELECT * FROM address JOIN city ON city.city_id = address.city_id


可以發現上面語法撈出來的資料,有一些欄位是重複的,這是因為兩張table都有 city_id 。要避免這種情形,可以指定要撈出的欄位,如果指定的欄位只出現在一張table,不需要特別寫是哪張table的欄位。

SELECT address, district, city FROM address JOIN city ON city.city_id = address.city_id


但如果欄位出現在多張table,需指定要從哪張table抓取資料,不然會發生錯誤。就像下面的範例,PostgreSQL搞不清楚要從 address 還是 city 取得 city_id 的資料。

SELECT 的時候,指定抓取 addresscity_id 就可以解決這個問題。

SELECT address, district, city, address.city_id FROM address JOIN city ON city.city_id = address.city_id


另外,query語法只有寫 JOIN 的話,PostgreSQL會默認為 INNER JOIN ,如果要使用Left Join和Right Join,需要寫 LEFT JOINRIGHT JOIN


上一篇
Day 3: 基本語法介紹 - Insert 和 query
下一篇
Day 5: 基本語法介紹 - Update 和 Delete
系列文
我所不知道的PostgreSQL 30天30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言